// /*
//  * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development Co., Ltd.
//  * Licensed under the Apache License, Version 2.0 (the "License");
//  * you may not use this file except in compliance with the License.
//  * You may obtain a copy of the License at
//  *
//  * http://www.apache.org/licenses/LICENSE-2.0
//  *
//  * Unless required by applicable law or agreed to in writing, software
//  * distributed under the License is distributed on an "AS IS" BASIS,
//  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
//  * See the License for the specific language governing permissions and
//  * limitations under the License.
//  */

// #ifndef SUB_THING_MODEL_H
// #define SUB_THING_MODEL_H

// #include <signal.h>
// #include <unordered_map>
// #include "sle_thing_model_define.h"

// namespace OHOS {
// namespace iotConnect {

// class SubThingModel{
// public:
//     static int32_t DevInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t SleInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t ConfigurationManagementGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t ConfigurationManagementPutCharState (const char *devId, const IotcServiceInfo *svc, const char *data, uint32_t len);
//     static int32_t CPUInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t OSInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t OTAInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t OTAInfoPutCharState (const char *devId, const IotcServiceInfo *svc, const char *data, uint32_t len);
//     static int32_t RestartInfoGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t RestartInfoPutCharState (const char *devId, const IotcServiceInfo *svc, const char *data, uint32_t len);
//     static int32_t FactoryResetGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t FactoryResetPutCharState (const char *devId, const IotcServiceInfo *svc, const char *data, uint32_t len);
//     static int32_t ServiceListGetCharState (const char *devId, const IotcServiceInfo *svc, char *data, uint32_t len);
//     static int32_t ServiceListPutCharState (const char *devId, const IotcServiceInfo *svc, const char *data, uint32_t len);

// public:
//     static void SubThingModelWaitReply(const char *devId, const uint32_t seq, const uint16_t timeout, const char *svcId);
//     static void SubThingModelTimerHandler(union sigval sv);
//     static void SubThingModelExecResultRpyly(const SubThingModelExecResult res, const char *svcId, const char *devId, const char *data, const uint32_t len);
//     static void SubThingModelCustomSecData(const uint64_t seq, const uint8_t *data, uint32_t len);

// private:
//     // SleBaseDeviceInfo sleBaseDeviceInfo_;
//     // SleBaseSleInfo sleBaseSleInfo_;
//     // ConfigurationManagementInfo configurationManagementInfo_;
//     // SleBaseCPUInfo sleBaseCPUInfo_;
//     // SleBaseOSInfo sleBaseOSInfo_;
//     // SleBaseOTAInfo sleBaseOTAInfo_;
//     // SleBaseRestartInfo sleBaseRestartInfo_;
//     // SleBaseFactoryReset sleBaseFactoryReset_;

//     static const uint16_t timeout = 10;
//     static uint64_t seq;
//     static std::unordered_map<int, MessageTimerAttr*> um_timers_;
// };
// }
// }
// #endif
